package mymodel

import (
	"github.com/gogf/gf/v2/os/gtime"
)

// OperLog 操作日志请求结构体
type OperLog struct {
	Title         string `v:"required|length:1,200#模块标题不能为空|模块标题长度必须在1-200个字符之间" json:"title"`
	BusinessType  int    `v:"required|min:0#业务类型不能为空|业务类型必须为非负整数" json:"businessType"`
	Method        string `v:"required|length:1,200#方法名称不能为空|方法名称长度必须在1-200个字符之间" json:"method"`
	RequestMethod string `json:"requestMethod"`
	OperatorType  int    `v:"required|in:0,1,2#操作类别不能为空|操作类别必须为0、1或2" json:"operatorType"`
	OperName      string `v:"required|length:1,50#操作人员不能为空|操作人员长度必须在1-50个字符之间" json:"operName"`
	DeptId        int64  `json:"deptId"`
	OperUrl       string `json:"operUrl"`
	OperIp        string `json:"operIp"`
	OperLocation  string `json:"operLocation"`
	OperParam     string `json:"operParam"`
	ErrorMsg      string `json:"errorMsg"`
}

// OperLogResponse 操作日志响应结构体
type OperLogResponse struct {
	OperId        uint64      `json:"operId"        orm:"oper_id"        description:"日志主键"`
	Title         string      `json:"title"         orm:"title"          description:"模块标题"`
	BusinessType  int         `json:"businessType"  orm:"business_type"  description:"业务类型"`
	Method        string      `json:"method"        orm:"method"         description:"方法名称"`
	RequestMethod string      `json:"requestMethod" orm:"request_method" description:"请求方式"`
	OperatorType  int         `json:"operatorType"  orm:"operator_type"  description:"操作类别"`
	OperName      string      `json:"operName"      orm:"oper_name"      description:"操作人员"`
	DeptId        int64       `json:"deptId"        orm:"dept_id"        description:"部门id"`
	OperUrl       string      `json:"operUrl"       orm:"oper_url"       description:"请求URL"`
	OperIp        string      `json:"operIp"        orm:"oper_ip"        description:"主机地址"`
	OperLocation  string      `json:"operLocation"  orm:"oper_location"  description:"操作地点"`
	OperParam     string      `json:"operParam"     orm:"oper_param"     description:"请求参数"`
	ErrorMsg      string      `json:"errorMsg"      orm:"error_msg"      description:"错误消息"`
	OperTime      *gtime.Time `json:"operTime"      orm:"oper_time"      description:"操作时间"`
}
